package com.yc.demo.servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 响应结果码：
 * 1xx 接收请求，继续处理
 * 2xx 正常结果
 * 3xx 相应重定向
 * 4xx 浏览器请求错误， 404没找到对应资源，405服务器资源没有实现对应的方法（get，post。。）
 * 5xx 服务器端错误，   500服务器内部错误， 503 服务器暂停服务
 * 
 * 
 * 1. Servlet 生命周期
 * 2. Servlet 页面跳转
 */


/**
 * 生命周期
 * 		1. 创建 ==》 初始化  ==> init()  只执行一次
 * 				在第一次访问Servlet被创建
 * 		2. 响应 ==》 doXXX   可能执行N次
 * 				在多次访问同一个Servlet地址时，
 * 				服务器会使用同一个Servlet对象响应请求
 * 		3. 停止 ==》 销毁     ==> destroy()   只执行一次
 * 				在服务器关闭时被销毁
 * 
 * 		Servlet 对象 存放在Servlet 容器中  ==》 Map
 * 
 * 页面跳转：
 * 		1. 请求转发
 * 			地址栏保存跳转前的请求地址
 * 			服务器端跳转
 * 		2. 响应重定向
 * 			地址栏变成跳转后的地址
 * 			浏览器端跳转
 * 
 */
@WebServlet("/deom.s")
public class DemoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private int count = 0;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		count ++;
		System.out.println("count: " + count);
		// 页面跳转
		String to = request.getParameter("to");
		if("post".equals(to)) {
			// 请求转发
			// 创建转发器
			RequestDispatcher rd = request.getRequestDispatcher("post.html");
			// 调用转发器的跳转方法
			rd.forward(request, response);
		} else {
			// 响应重定向
			response.sendRedirect("page.html");
		}
		
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

	@Override
	public void destroy() {
		System.out.println("Dome 被销毁");
	}

	@Override
	public void init() throws ServletException {
		System.out.println("Dome 被创建");
	}
	
	
	
	
	
	
	

}
